package com.example.controller.shangPinController;

import com.example.pojo.shangPinDataPojo.ResultDate;
import com.example.pojo.shangPinPojo.JsProduct;
import com.example.service.shangPinService.JsProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author:郭
 * @Description: TODO
 * @Date: 2022/11/13 8:28
 * @ClassName JsProductCategroyController
 * 商品表
 */
@RequestMapping("/jsproduct")
@Controller
public class JsProductController {
    @Autowired
    private JsProductService jsProductService;
    /**
     * @Author: 郭
     * @Date: 2022/11/13 9:41
     * 全查商品表中的全部数据
     * @Param:
     * @Return: ResultDate<JsProduct>
     */
    @GetMapping("/getAll")
    @ResponseBody
    public ResultDate<JsProduct> getAll(){
        List<JsProduct> all = jsProductService.getAll();
        ResultDate<JsProduct> date = new ResultDate<>();
        date.setCount(jsProductService.getCount());
        date.setData(all);
        return date;
    }
    /**
     * @Author: 郭
     * @Date: 2022/11/21 14:53
     * 根据商品分类 商品名称 商品状态（上架/下架） 商品价格 商品审核 商品标签实现高级检索模糊查询出来
     * @Param:
     *      categroyId：商品分类
     *      productName：商品名称
     *      productSate：商品状态（上架、下架）
     *      currentpriceProduct：（商品价格）
     *      productCstatus：商品审核
     *      productDescription：商品标签
     * @Return: List<JsProduct>
     */

    @GetMapping("/getGaoJiSelect")
    @ResponseBody
    public List<JsProduct> getGaoJiSelect(int categroyId,
                                          String productName,
                                          int productSate,
                                          BigDecimal currentpriceProduct,
                                          int productCstatus,
                                          String productDescription){
        List<JsProduct> gaoJiSelect = jsProductService.getGaoJiSelect(
                categroyId,
                productName,
                productSate,
                currentpriceProduct,
                productCstatus,
                productDescription);
        return gaoJiSelect;
    }
    /**
     * @Author: 郭
     * @Date: 2022/11/15 9:30
     * 根据商品名称 商品分类（书籍、服装） 商品状态（上架、下架） 商品标签 模糊查询出来
     * @Param:
     *      productName：商品名称
     *      categroyId：商品分类（书籍、服装）
     *      productSate：商品状态（上架、下架）
     *      productDescription：商品标签
     * @Return: List<JsProduct>
     *
     */

    @GetMapping("/getDimSelect")
    @ResponseBody
    public List<JsProduct> getDimSelect(String productName,
                                        int categroyId,
                                        int productSate,
                                        String productDescription){
        List<JsProduct> dimSelect = jsProductService.getDimSelect( productName, categroyId, productSate, productDescription);
        return dimSelect;
    }
    /**
     * @Author: 郭
     * @Date: 2022/11/13 9:44
     * 根据id删除商品表中的数据
     * @Param: productId
     * @Return: int
     */
    @PostMapping("/getDelete")
    @ResponseBody
    public int getDelete(@RequestBody JsProduct product){
        int delete = jsProductService.getDelete(product.getProductId());
        return delete;
    }
    /**
     * @Author: 郭
     * @Date: 2022/11/13 9:48
     * 根据商品表中的对象修改表中的数据
     * @Param: jsProduct
     * @Return: int
     */
    @GetMapping("/getUpdate")
    @ResponseBody
    public int getUpdate(JsProduct jsProduct){
        int update = jsProductService.getUpdate(jsProduct);
        return update;
    }
    /**
     * @Author: 郭
     * @Date: 2022/12/1 16:04
     * @Param: jsProduct
     * @Return: int
     * 根据对像添加商品信息
     */
    @GetMapping("/getAddInsert")
    @ResponseBody
    public int getAddInsert(JsProduct jsProduct) {
        int addInsert = jsProductService.getAddInsert(jsProduct);
        System.out.println("添加："+addInsert);
        return addInsert;
    }
}
